package main

import (
	"fmt"
	"reflect"
)

func main() {
	var a, b int
	//两个变量地址不一样
	fmt.Println(&a, &b, a, b)

	ptr1 := new(int)
	ptr2 := new(int)
	//四个地址都不相同,但是两个值深度一致
	fmt.Println(ptr1, ptr2, &ptr1, &ptr2, reflect.DeepEqual(ptr1, ptr2))

	ptr1 = &a
	ptr2 = &a
	//此时两个int指针本身的地址没变，都指向了变量a的地址
	fmt.Println(ptr1, ptr2, &ptr1, &ptr2)

	//两个指针指向同一个地址是相等的,深度也一致
	fmt.Println(ptr1 == ptr2)
	*ptr1 = 10
	fmt.Println(ptr1, ptr2, &ptr1, &ptr2, a, *ptr1, *ptr2)

	//int输入string会是默认值0
	var key int
	//fmt.Scanln(&key)
	fmt.Println(key)

	//获取多个输入值
	var input1 string
	fmt.Scanf("%v%v", &key, &input1)
	fmt.Println(key, input1)

}
